package cn.hiapi.core.basic.sharding.entity;

import cn.hiapi.core.basic.Nuwa;
import cn.hiapi.core.basic.sharding.enums.ShardingMode;
import cn.hiapi.core.basic.sharding.properties.ShardingProperties;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NonNull;

/**
 * @author AdinZ
 * @date 2023/12/20 14:08
 * 分表熟悉
 */
@AllArgsConstructor
@Getter
public class ShardingOption extends Nuwa {


    /**
     * 数据库名
     */
    @NonNull
    private String database;
    /**
     * 数据表名
     */
    @NonNull
    private String table;
    /**
     * 分表模式
     */
    @NonNull
    private ShardingMode mode;

    /**
     * 分表字段
     */
    @NonNull
    private String shardingColumn;

    /**
     * 主键字段
     */
    @NonNull
    private String primaryKey;

    /**
     * 分表属性,
     *
     */
    private ShardingProperties properties;

}
